Technical Field
The present disclosure generally relates to image processing and compression.
Description of the Related Art
Machine-readable symbols encode information in a form that can be optically read via a machine-readable symbol reader or scanner. Machine-readable symbols take a variety of forms, the most commonly recognized form being the linear or one-dimensional machine-readable symbol. Other forms include two-dimensional machine-readable symbols such as stacked code symbols, area or matrix code symbols, or machine-readable symbols. These machine-readable symbols may be made of patterns of high and low reflectance areas. For instance, a one-dimensional barcode symbol may comprise a pattern of black bars on a white background. Also for instance, a two-dimensional symbol may comprise a pattern of black marks (e.g., bars, squares or hexagons) on a white background. Machine-readable symbols are not limited to being black and white, but may comprise two other colors, and/or may include more than two colors (e.g., more than black and white).
Machine-readable symbols are typically composed of elements (e.g., symbol characters) which are selected from a particular machine-readable symbology. Information is encoded in the particular sequence of shapes (e.g., bars) and spaces which may have varying dimensions. The machine-readable symbology provides a mapping between machine-readable symbols or symbol characters and human-readable symbols (e.g., alpha, numeric, punctuation, commands). A large number of symbologies have been developed and are in use, for example Universal Product Code (UPC), International Article Number (EAN), Code 39, Code 128, Data Matrix, PDF417, etc.
Machine-readable symbols have widespread and varied applications. For example, machine-readable symbols can be used to identify a class of objects (e.g., merchandise) or unique objects (e.g., patents). As a result, machine-readable symbols are found on a wide variety of objects, such as retail goods, company assets, and documents, and help track production at manufacturing facilities and inventory at stores (e.g., by scanning objects as they arrive and as they are sold). In addition, machine-readable symbols may appear on a display of a portable electronic device, such as a mobile telephone, personal digital assistant, tablet computer, laptop computer, or other device having an electronic display. For example, a customer, such as a shopper, airline passenger, or person attending a sporting event or theater event, may cause a machine-readable symbol to be displayed on their portable electronic device so that an employee (e.g., merchant-employee) can read the machine-readable symbol via a machine-readable symbol reader to allow the customer to redeem a coupon or to verify that the customer has purchased a ticket for the event.
Machine-readable symbol readers or scanners are used to capture images or representations of machine-readable symbols appearing on various surfaces to read the information encoded in the machine-readable symbol. One commonly used machine-readable symbol reader is an imager- or imaging-based machine-readable symbol reader. Imaging-based machine-readable symbol readers typically employ flood illumination to simultaneously illuminate the entire machine-readable symbol, either from dedicated light sources, or in some instances using ambient light. Such is in contrast to scanning or laser-based (i.e., flying spot) type machine-readable symbol readers, which scan a relative narrow beam or spot of light sequentially across the machine-readable symbol.
Machine-readable symbol readers may be fixed, for example, readers may be commonly found at supermarket checkout stands or other point of sale locations. Machine-readable symbol readers may also be handheld (e.g., handheld readers or even smartphones), or mobile (e.g., mounted on a vehicle such as a lift vehicle or a forklift).
Imaging-based machine-readable symbol readers typically include solid-state image circuitry, such as charge-coupled devices (CCDs) or complementary metal-oxide semiconductor (CMOS) devices, and may be implemented using a one-dimensional or two-dimensional imaging array of photosensors (or pixels) to capture an image of the machine-readable symbol. One-dimensional CCD or CMOS readers capture a linear cross-section of the machine-readable symbol, producing an analog waveform whose amplitude represents the relative darkness and lightness of the machine-readable symbol. Two-dimensional CCD or CMOS readers may capture an entire two-dimensional image. The image is then processed to find and decode a machine-readable symbol. For example, virtual scan line techniques for digitally processing an image containing a machine-readable symbol sample across an image along a plurality of lines, typically spaced apart and at various angles, somewhat like a scan pattern of a laser beam in a scanning or laser-based scanner.
Images captured by imaging-based readers or cameras are often acquired at a high resolution and are therefore relatively large. Thus, sending images from the camera to other processor-based devices in substantially real-time over a data communications channel (e.g., LAN, WAN) can be difficult or impossible. Various techniques have been used to address this problem. These techniques include utilizing one or more of image decimation (e.g., down sampling), image cropping and image compression (e.g., jpeg conversion) prior to transmission. However, using these techniques has disadvantages due to the loss of information in the images. For instance, JPEG conversion, while providing a reasonable representation of the original image, still destroys potentially important information in the image, such as binarized data encoded in the pixel least significant bit (LSB), which may be used for optical character recognition (OCR), or embedded data typically placed in the scan line which provides information regarding camera operation relating to the image being acquired. Further, image cropping is not always reliable as part of the object or data of interest may be cropped. Cropping may also remove the aforementioned embedded data in images.
Additionally, known decoding software employs software modules which function to locate regions of interest (ROIs) for machine-readable symbol decoding. Such functions are computationally intensive, and such functions do not assist in compression of the images.